package com.example.dao.userMapper;

import com.example.dto.dept.Dept;
import com.example.dto.job.Job;
import com.example.dto.role.Role;
import com.example.dto.user.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;
import java.util.Set;

@Repository
public interface UserMapper {

    int save(User user);

    void deleteById(@Param("ids") Set<Long> ids);
    /**
     * 根据角色查询
     * @param ids /
     * @return /
     */
    int countByRoles(Set<Long> ids);

    List<User> selectList(Map<String, Object> userCriteria);

    int findCount(Map<String, Object> userCriteria);

    List<User> findByRoleId(Long id);
    /**
     * 根据用户名查询
     * @param username 用户名
     * @return /
     */
    User findByUsername(String username);
    /**
     * 根据邮箱查询
     * @param email 邮箱
     * @return /
     */
    User findByEmail(String email);
    /**
     * 根据手机号查询
     * @param phone 手机号
     * @return /
     */
    User findByPhone(String phone);
    /**
     * 根据id查询
     * @param
     * @return /
     */
    User findById(Long id);

    void creat(User resources);

    void creatRole(@Param("user") User user, @Param("roles") List<Role> roles);

    void creatJobs(@Param("user") User user, @Param("jobs")List<Job> jobs);

    void deleRoles(@Param("ids") Set<Long> ids);

    void deleJobs(@Param("ids") Set<Long> ids);
}
